// 流
// 流的应用很多
// 1. 处理数据， http 构建工具
// 2. 提高性能

// 和文件的操作不一样的是，流会放在缓存中
// buffer , 而文件系统的操作不会，它是一次性把所有的
// 内放过去， 而流还会一般放入缓存一边处理数据
// 1. 流是事件的实列，可以绑定一些事件d
// 2. 当数据很多时， 会分成很多个buffer
let fs = require("fs");

// 是字节流  
let myReadStream = fs.createReadStream(__dirname + "/readMe.txt");
let myWriteStream = fs.createWriteStream(__dirname +  "/writeMe.txt");

// 复制其实用 管道 pipe 更快
// 读  pipe( 写 )
// myReadStream.pipe(myWriteStream);

myReadStream.on("data", (chunk) => {
    // 接收数据时用的监听函数
    // 每一个 buffer 中的块 chunk 变化时，监听函数就发生
    console.log("new chunk received");
    console.log(chunk);
    myWriteStream.write(chunk);
})

myReadStream.on('end', () => {
    // 接收数据完成
    console.log("myReadStream is finished")
})
